賀!此系列文榮獲 2023 iThome 鐵人賽《優選》獎項,正在規劃出書中,感謝大家的支持🙏,同名課程「Java 工程師必備!Spring Boot 零基礎入門」也已在 Hahow 平台上架
哈囉大家好,我是古古
在上一篇文章中,有先介紹了如何透過 Spring JDBC 的 update()
方法,去執行 INSERT、UPDATE、DELETE 這三種 sql 語法
那麼接著這篇文章,就會來介紹要如何透過 Spring JDBC 的 query()
方法,去執行 SELECT 這一種 sql 語法
在 Spring JDBC 中,會根據 sql 的語法去區分成兩大類,分別是 update 系列和 query 系列
在上一篇文章 Day 26 - Spring JDBC 的用法 (上) - 執行 INSERT、UPDATE、DELETE sql 中,我們有介紹了 update()
方法的用法,去執行 INSERT、UPDATE、DELETE 這三種 sql 語法
所以接著這篇文章,就會來介紹如何透過 query()
方法,在 Spring Boot 中去執行 SELECT sql
query()
方法的前兩個參數和 update()
方法一樣,都是先放入「要執行的 sql 語法」,接著是放入「動態決定 sql 變數的 map」
而 query()
方法特別的地方,就在於他的第三個參數 RowMapper
補充:有關前兩個參數的用法,可以參考上一篇文章的介紹
在 query()
方法中的第三個參數 RowMapper,他的用途,就是**「將資料庫查詢出來的數據,轉換成是 Java object」**
像是我們可以創建一個新的 StudentRowMapper class,然後讓他去 implements RowMapper 這個 interface,實作如下的程式:
public class StudentRowMapper implements RowMapper<Student> {
@Override
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
return student;
}
}